<?php
/**
* 名称：全局初始化抽象控制器。
* 描述：初始化全局通用的相关设置。
* @abstract
*/
abstract class Controller_Public_Preload extends Controller{
    /**
    * @const string 应用主题值的cookie存储名称。
    */
    const THEME_COOKEIE_NAME='tryphp_y001_theme_dl0002_0001_dus0001';

    /**
    * 描述：零级入口函数，所有控制器从该程式起运。
    * @access public
    * @param  string $method 必选 调用程式的名称即方法名。
    * @return void
    */
    public function __Construct($method){
        $this->LoadTheme();
        $this->CheckBroswer();
        parent::__Construct($method);
    }

    /**
    * 描述：检析客户端主题情况并设置。
    * @access private
    * @return void
    */
    private function LoadTheme(){
        $theme=Cookie::Get(self::THEME_COOKEIE_NAME);
        if(empty($theme)){
            $theme='stylesheets-schoolpainting';
        }
        define('APP_SCALAR_THEME',$theme);
    }

    /**
    * 描述：检析客户端版本情况并阻拦。
    * @access private
    * @return void
    */
    private function CheckBroswer(){
        $browser=new Browser();
        //小于IE将拦阻。
        if($browser->getBrowser()==='Internet Explorer'&&(int)$browser->getVersion()<9){
            self::$Template->Display('oui/common/browser.html');
            exit();
        }
    }

    /**
    * 描述：程序执行反馈程式。
    * @access protected
    * @return void
    */
    protected function Feedback($result,$successMessage=array(),$failedMessage='程式执行失败，请稍候再试！'){
        $notice=isset($successMessage['notice']) ? $successMessage['notice']:$successMessage[0];
        $link=isset($successMessage['link']) ? $successMessage['link']:$successMessage[1];
        $autoTurn=isset($successMessage['autoTurn']) ? $successMessage['autoTurn']:$successMessage[2];
        $autoTurn=is_array($autoTurn) ? $autoTurn:array($autoTurn);
        //~
        if($result===TRUE){
            if(is_array($successMessage)){
                Model_Break::Success($notice,$link,$autoTurn);
            }
            else{
                header('location:'.$successMessage);
            }
        }
        else{
            Model_Break::Message($failedMessage);
        }
    }
}